New API to set whether URI drops are accepted
authorFederico Mena Quintero <federico@gnome.org>
Tue, 4 Dec 2012 18:57:48 +0000 (12:57 -0600)
committerFederico Mena Quintero <federico@gnome.org>
Tue, 4 Dec 2012 18:57:48 +0000 (12:57 -0600)
The file chooser will not accept dropping URIs in a shortcut item.  However, Nautilus will,
to perform normal DnD for files.

Signed-off-by: Federico Mena Quintero <federico@gnome.org>
gtk/gtkplacessidebar.c
gtk/gtkplacessidebar.h

index c5ba9d291dd810ece48f017358d085d20d38188f..754114bcdf504736c592ed211392612fd8011d71 100644 (file)
@@ -135,6 +135,7 @@ struct _GtkPlacesSidebar {
        guint show_trash : 1;
        guint trash_is_full : 1;
        guint show_cwd : 1;
+       guint accept_uri_drops : 1;
 };
 
 struct _GtkPlacesSidebarClass {
@@ -1461,15 +1462,17 @@ drag_motion_callback (GtkTreeView *tree_view,
                }
        } else {
                action = 0;
-               if (sidebar->drag_list != NULL) {
-                       gtk_tree_model_get_iter (GTK_TREE_MODEL (sidebar->store),
-                                                &iter, path);
-                       gtk_tree_model_get (GTK_TREE_MODEL (sidebar->store),
-                                           &iter,
-                                           PLACES_SIDEBAR_COLUMN_URI, &uri,
-                                           -1);
-                       emit_drag_action_requested (sidebar, context, uri, sidebar->drag_list, &action);
-                       g_free (uri);
+               if (sidebar->accept_uri_drops) {
+                       if (sidebar->drag_list != NULL) {
+                               gtk_tree_model_get_iter (GTK_TREE_MODEL (sidebar->store),
+                                                        &iter, path);
+                               gtk_tree_model_get (GTK_TREE_MODEL (sidebar->store),
+                                                   &iter,
+                                                   PLACES_SIDEBAR_COLUMN_URI, &uri,
+                                                   -1);
+                               emit_drag_action_requested (sidebar, context, uri, sidebar->drag_list, &action);
+                               g_free (uri);
+                       }
                }
        }
 
@@ -4047,3 +4050,11 @@ gtk_places_sidebar_set_show_cwd (GtkPlacesSidebar *sidebar, gboolean show_cwd)
        sidebar->show_cwd = !!show_cwd;
        update_places (sidebar);
 }
+
+void
+gtk_places_sidebar_set_accept_uri_drops (GtkPlacesSidebar *sidebar, gboolean accept_uri_drops)
+{
+       g_return_if_fail (GTK_IS_PLACES_SIDEBAR (sidebar));
+
+       sidebar->accept_uri_drops = !!accept_uri_drops;
+}
index 093357ca1112218f7ce090e3b48a106941520280..9180372f7770bc64f209b52f8e4483e96f4be09f 100644 (file)
@@ -70,6 +70,8 @@ void gtk_places_sidebar_set_trash_is_full (GtkPlacesSidebar *sidebar, gboolean i
 
 void gtk_places_sidebar_set_show_cwd (GtkPlacesSidebar *sidebar, gboolean show_cwd);
 
+void gtk_places_sidebar_set_file_dnd_enabled (GtkPlacesSidebar *sidebar, gboolean file_dnd_enabled);
+
 G_END_DECLS
 
 #endif /* __GTK_PLACES_SIDEBAR_H__ */